
	package co.com.inventarios.logica;

	import java.util.List;

import co.com.inventarios.modelo.Linea;
import co.com.inventarios.modelo.LineaWork;
import co.com.inventarios.modelo.Prounimed;
import co.com.inventarios.modelo.Tipoiva;
import co.com.inventarios.modelo.Unimed;
import co.com.inventarios.modelo.UnimedWork;
import co.com.inventarios.persistencia.EntityManagerHelper;
import co.com.inventarios.persistencia.ILineaDAO;
import co.com.inventarios.persistencia.IUnimedDAO;
import co.com.inventarios.persistencia.LineaDAO;
import co.com.inventarios.persistencia.QueryLineaDAO;
import co.com.inventarios.persistencia.QueryProUnimedDAO;
import co.com.inventarios.persistencia.QueryTipoivaDAO;
import co.com.inventarios.persistencia.QueryUnimedDAO;
import co.com.inventarios.persistencia.UnimedDAO;




	public class LineaLogica implements ILineaLogica {


		Linea miLinea = new Linea();
		ILineaDAO lDAO = new LineaDAO(); 

		public void grabarLinea(String codigo, String nombre, Long activo)
				throws Exception {

			miLinea.setLincodigo(codigo);
			miLinea.setLinnombre(nombre);
			miLinea.setLinactivo(activo);

			try {
				EntityManagerHelper.getEntityManager().getTransaction().begin();
				lDAO.save(miLinea);
				EntityManagerHelper.getEntityManager().getTransaction().commit();
			} catch (Exception ex) {
				ex.printStackTrace();
				EntityManagerHelper.getEntityManager().getTransaction().rollback();
			}

		}

		public List<Linea> buscarTodosLinea() throws Exception {
			return new LineaDAO().findAll();
			// TODO Auto-generated method stub
		}

		public List<Linea> consultarLinea(String propiedad, String valor)
				throws Exception {
			return new LineaDAO().findByProperty(propiedad, valor);
		}

		public void eliminarLinea(String codigo) throws Exception {
			miLinea.setLincodigo(codigo);

			try {
				EntityManagerHelper.getEntityManager().getTransaction().begin();
				lDAO.delete(miLinea);
				EntityManagerHelper.getEntityManager().getTransaction().commit();
			} catch (Exception ex) {
				ex.printStackTrace();
				EntityManagerHelper.getEntityManager().getTransaction().rollback();
			}

		}

		public Linea consultarRegLinea(String valor) throws Exception {
			return new LineaDAO().findById(valor);
		}

		public LineaWork[] findLineaSelectedRow(List<Linea> lista)
				throws Exception {
			LineaWork doc;
			int max = lista.size();
			LineaWork[] arrayDoc = new LineaWork[max];
			if (lista != null) {
				for (int i = 0; i < max; i++) {
					doc = new LineaWork();
					doc.setLineaw(lista.get(i));
					arrayDoc[i] = doc;
				}
			}
			return arrayDoc;
		}

		public List<Linea> findAll(String expresion) throws Exception {
			return new QueryLineaDAO().findBy_all(expresion);
		}

		public List<Linea> findByPropertyAll(String propiedad, String valor,String expresion)
				throws Exception {
			return new QueryLineaDAO().findByPropertyAll(propiedad, valor,expresion);
		}

		public void Eliminar_Linea(Linea reg) throws Exception {
			try {
				EntityManagerHelper.getEntityManager().getTransaction().begin();
				new LineaDAO().delete(reg);
				EntityManagerHelper.getEntityManager().getTransaction().commit();
			} catch (Exception ex) {
				ex.printStackTrace();
				EntityManagerHelper.getEntityManager().getTransaction().rollback();
			}

		}
		
		public void Guarda_Linea(Linea reg) throws Exception { 
			try {
				EntityManagerHelper.getEntityManager().getTransaction().begin();
				new LineaDAO().save(reg);
				EntityManagerHelper.getEntityManager().getTransaction().commit();
			} catch (Exception ex) {
				ex.printStackTrace();
				EntityManagerHelper.getEntityManager().getTransaction().rollback();
			}

		}
		
		public void Modifica_Linea(Linea reg) throws Exception {
			try {
				EntityManagerHelper.getEntityManager().getTransaction().begin();
				new LineaDAO().update(reg);
				EntityManagerHelper.getEntityManager().getTransaction().commit();
			} catch (Exception ex) {
				ex.printStackTrace();
				EntityManagerHelper.getEntityManager().getTransaction().rollback();
			}

		}

		public Linea findByPropertyActivo(String propiedad,
				String valor) throws Exception {
			return new QueryLineaDAO().findByPropertyActivo(propiedad, valor);
		}

		public List<Linea> findByPropertyActivoLista(String propiedad) throws Exception {
			return new QueryLineaDAO().findByPropertyActivoLista(propiedad);
		}
		

	}
	
	
